import { MaybeRefOrGetter } from 'vue'

export const VisibilityPropsType_Name = 'VisibilityPropsType'

export type VisibilityPropsType = {
  // 对于组件在视口中或不在视口中是否只监听一次
  once?: boolean
  // 视口元素
  scrollTarget?: MaybeRefOrGetter<HTMLElement | undefined | null>
  // 扩大或缩小视口的区域范围，正值：扩大范围，使目标元素更早触发进入回调或更晚触发离开回调；负值：收缩范围，使目标元素更晚触发进入回调或更早触发离开回调
  rootMargin?: MaybeRefOrGetter<string>
  // 组件显示在视口中时的处理函数
  showHandler?: () => void
  // 组件不在视口中时的处理函数
  hideHandler?: () => void
}
